﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр)
	///</summary>
	[DataContract]
	public enum СостоянияРаботника
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"6791aa49-647a-4120-b1d5-e68efa804399\", \"Представление\":\"НеРаботает\"}")]
		НеРаботает = 0,//Уволен
		[EnumMember(Value = "{\"Ссылка\":\"963ace3e-b893-434c-a498-9a9499aca191\", \"Представление\":\"Работает\"}")]
		Работает = 1,
		[EnumMember(Value = "{\"Ссылка\":\"901ae859-70b2-46e5-ae42-c511b0c93b4c\", \"Представление\":\"УдалитьЗаболевание\"}")]
		УдалитьЗаболевание = 2,//Не используется как устаревшее
		[EnumMember(Value = "{\"Ссылка\":\"f739b5d9-ae53-4170-9ea6-2d93f5523001\", \"Представление\":\"УдалитьКомандировка\"}")]
		УдалитьКомандировка = 3,//Не используется как устаревшее
		[EnumMember(Value = "{\"Ссылка\":\"6d67a34a-d196-48a3-af9e-5c9a5bc1ccec\", \"Представление\":\"ОтпускЕжегодный\"}")]
		ОтпускЕжегодный = 4,//Отпуск ежегодный
		[EnumMember(Value = "{\"Ссылка\":\"5f31965b-2864-4bec-be46-80c7b852e412\", \"Представление\":\"УдалитьОтпускПрочий\"}")]
		УдалитьОтпускПрочий = 5,//Не используется как устаревшее
		[EnumMember(Value = "{\"Ссылка\":\"22a22bcd-44ca-44df-83db-9754fad9a4ce\", \"Представление\":\"УдалитьОтсутствуетПоНевыясненнойПричине\"}")]
		УдалитьОтсутствуетПоНевыясненнойПричине = 6,//Не используется как устаревшее
		[EnumMember(Value = "{\"Ссылка\":\"ae67717c-1a70-4937-87b3-9cd95a4f0223\", \"Представление\":\"Отсутствие\"}")]
		Отсутствие = 7,
	}
	public static partial class СостоянияРаботника_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid НеРаботает = new Guid("8ee6d5b1-80fa-9943-4120-647a6791aa49");//Уволен
		public static readonly Guid Работает = new Guid("949a98a4-ac99-91a1-434c-b893963ace3e");
		public static readonly Guid УдалитьЗаболевание = new Guid("11c542ae-c9b0-4c3b-46e5-70b2901ae859");//Не используется как устаревшее
		public static readonly Guid УдалитьКомандировка = new Guid("932da69e-52f5-0130-4170-ae53f739b5d9");//Не используется как устаревшее
		public static readonly Guid ОтпускЕжегодный = new Guid("9a5c9eaf-c15b-eccc-48a3-d1966d67a34a");//Отпуск ежегодный
		public static readonly Guid УдалитьОтпускПрочий = new Guid("c78046be-52b8-12e4-4bec-28645f31965b");//Не используется как устаревшее
		public static readonly Guid УдалитьОтсутствуетПоНевыясненнойПричине = new Guid("5497db83-d9fa-cea4-44df-44ca22a22bcd");//Не используется как устаревшее
		public static readonly Guid Отсутствие = new Guid("d99cb387-4f5a-2302-4937-1a70ae67717c");
		public static СостоянияРаботника Получить(this СостоянияРаботника Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СостоянияРаботника Получить(this СостоянияРаботника Значение, Guid Ссылка)
		{
			if(Ссылка == НеРаботает)
			{
				return СостоянияРаботника.НеРаботает;
			}
			else if(Ссылка == Работает)
			{
				return СостоянияРаботника.Работает;
			}
			else if(Ссылка == УдалитьЗаболевание)
			{
				return СостоянияРаботника.УдалитьЗаболевание;
			}
			else if(Ссылка == УдалитьКомандировка)
			{
				return СостоянияРаботника.УдалитьКомандировка;
			}
			else if(Ссылка == ОтпускЕжегодный)
			{
				return СостоянияРаботника.ОтпускЕжегодный;
			}
			else if(Ссылка == УдалитьОтпускПрочий)
			{
				return СостоянияРаботника.УдалитьОтпускПрочий;
			}
			else if(Ссылка == УдалитьОтсутствуетПоНевыясненнойПричине)
			{
				return СостоянияРаботника.УдалитьОтсутствуетПоНевыясненнойПричине;
			}
			else if(Ссылка == Отсутствие)
			{
				return СостоянияРаботника.Отсутствие;
			}
			return СостоянияРаботника.ПустаяСсылка;
		}
		public static byte[] Ключ(this СостоянияРаботника Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СостоянияРаботника Значение)
		{
			switch (Значение)
			{
				case СостоянияРаботника.НеРаботает: return НеРаботает;
				case СостоянияРаботника.Работает: return Работает;
				case СостоянияРаботника.УдалитьЗаболевание: return УдалитьЗаболевание;
				case СостоянияРаботника.УдалитьКомандировка: return УдалитьКомандировка;
				case СостоянияРаботника.ОтпускЕжегодный: return ОтпускЕжегодный;
				case СостоянияРаботника.УдалитьОтпускПрочий: return УдалитьОтпускПрочий;
				case СостоянияРаботника.УдалитьОтсутствуетПоНевыясненнойПричине: return УдалитьОтсутствуетПоНевыясненнойПричине;
				case СостоянияРаботника.Отсутствие: return Отсутствие;
			}
			return Guid.Empty;
		}
	}
}